1. Field of the Invention
The present invention relates to a system for correcting errors in data frames including horizontal and vertical parity data for correcting errors in the frame per rows and columns. The data rows and columns of the frame then constitute so-called product-codes.
2. Discussion of the Related Art
FIG. 1 illustrates an example of a frame including rows of 182 bytes and columns of 208 bytes. Ten bytes in each row constitute horizontal parity data HP and sixteen bytes in each column constitute vertical parity data VP. The remaining frame of 172.times.192 bytes includes the effective data D.
Each row or column, with the corresponding parity data, constitutes, for example, a Reed-Solomon code. With a 2k-parity data Reed-Solomon code, by means of methods well known in the art, 2k error indications can be found, which most often consist in k error values and the k corresponding positions in the code. In the case of product-codes, as in FIG. 1, each Reed-Solomon code can be used in a more flexible way, that is, with 2k parity values, n errors having unknown values and positions, and m errors having known values and unknown positions can be found, with 2n+m.ltoreq.2k.
To perform an error correction in a code corresponding to a row or a column, a syndrome is calculated based on all the code data, including the parity data. Based on this syndrome, the values and positions of the errors can be calculated in a known manner.
If the number of errors revealed by a syndrome is a maximum number, it may be preferable not to perform the corresponding corrections. Indeed, there is then a probability of approximately 10.sup.-5, horizontally, and of approximately 10.sup.- 8, vertically, that the code to be corrected includes more than the maximum number of errors. A correction would then be wrong. To make the probability of miscorrection negligible, several correction passes are performed, in which only the syndromes which reveal a number of errors lower than a threshold which is itself lower than or equal to the maximum number are exploited. For each pass, the erroneous data are corrected and the transverse syndromes affected by the corrections, that is, the vertical syndromes of columns affected by the corrections in a row and the horizontal syndromes of rows affected by corrections in a column, are updated. The number of errors per row or column can thus be reduced below the maximum number of errors correctable by the syndromes.
While awaiting correction, the frame data must be stored. Generally two frames are stored, that is, a first frame being received and a second frame being corrected. In the example of FIG. 1, 2.times.37856 memory bytes are required. A frame memory with such a capacity is not integrable at reasonable cost with the error correction circuit, and must thus be external. Besides, if no particular precautions are taken, there is a risk of having to access the memory many times during the processing of a frame, which requires a particularly fast, and thus expensive, memory.